<?php
/**
 * @version 	$Id$
 * @author 		Luu Trong Hieu <tronghieu1012@yahoo.com>
 * @copyright 	Copyright (c) 2010 Luu Trong Hieu. All right reseverd.
 * @license 	GNU/GPL see license.php
 */

defined('IN_FLYWHEEL') or die();
/**
 * Flywheel Security User Interface
 * 
 * @package system
 * @subpackage user
 *
 */
interface fSecurityUserInterface {
	/**
	 * Is Authenicated 
	 * @return boolean true if this user is authenticated
	 */
	public function isAuthenticated();
	
	/**
	 * Set authenticated status of user
	 *
	 * @param boolean $authenticated
	 */
	public function setAuthenticated($authenticated);
	
	/**
	 * Add Permission
	 *  add permission for user
	 *
	 * @param mixed $permissions
	 */
	public function addPermission();
	
	/**
	 * Has permission
	 *  check permission of user
	 *
	 * @param mixed $permissions
	 */
	public function hasPermissions($permissions);
	
	/**
	 * Remove Permission of user
	 *
	 * @param string $permission permission name
	 */
	public function removePermission($permission);
	
	/**
	 * Clear permission
	 * 	clear all permissions of user
	 *
	 */
	public function clearPermission();
}